Clip

Object Hierarchy | 関連する C++クラス:Clip

継承

SIObject

ProjectItem

Clip

導入

v1.5

詳細

クリップはアニメーションとシェイプアクション(ActionSource)、オーディオ、イメージソース(Source)、コンパウンドクリップ(ClipContainer)のインスタンスです。siClipType列挙に含まれる値の 1 つを戻すSIObject.Typeプロパティを使用してクリップタイプ(オーディオクリップなど)を表示してチェックします。

また、このオブジェクトを使用すると、タイミング(TimeControl)、その他のクリップへのリンク(ClipEffect)、および適用するエフェクト(ClipRelation)などのクリップ機能にアクセスすることができます。さらに、このクリップがインスタンス化される(Clip.Sourceを介したSourceオブジェクト)、またはソースのエレメントとなる(Clip.MappedItemsを介したMappedItemオブジェクト、またはActionSource.SourceItemsを介したAnimationSourceItemオブジェクトのいずれかを使用して)基本ソースを取得します。

重要:クリップオブジェクトがコンパウンド、オーディオ、およびイメージクリップの場合、すべてのクリップメソッドとプロパティでは 3 つのタイプが使用できません。たとえば、Clip.MappedItemsプロパティではエラーが発生し、3 つのクリップタイプ(E_NOTIMPL を戻すクリップなど)が実装されなかったことを告げるレポートが作成されます。

ヒント:ソースからクリップが作成するオブジェクトモデルに関数はありませんが、AddClipコマンドを使用できます。これにより、このオブジェクトが戻されます。既存のクリップオブジェクトにアクセスするには、ClipContainer.Clipsプロパティを使用してMixer上のClipCollectionを取得します。

メソッド

AddCustomOp AddProperty AddScriptedOp AddScriptedOpFromFile
AnimatedParameters2 BelongsToオペレータ EvaluateAt GetICEAttributeFromName
IsA IsAnimated2 IsClassOfオペレータ IsEqualToオペレータ
IsKindOf IsLockedオペレータ IsSelectedオペレータ LockOwners
SetAsSelectedオペレータ SetCapabilityFlagオペレータ SetLock TaggedParameters
UnSetLock      
       

プロパティ

Application BranchFlagオペレータ Capabilitiesオペレータ Categories
Effect EvaluationID Familiesオペレータ FullNameオペレータ
Help HierarchicalEvaluationID ICEAttributes LockLevelオペレータ
LockMastersオペレータ LockTypeオペレータ MappedItems Model
Nameオペレータ NestedObjects ObjectID Origin
OriginPath Owners PPGLayoutオペレータ Parametersオペレータ
Parent Parent3DObject Properties Relations
Selectedオペレータ Source TimeControl Typeオペレータ

1. Python の例

#
# This example demonstrates how to create a Clip containing the static
# values of the local position of an object.
#
oRoot = Application.ActiveSceneRoot
oCube = oRoot.AddGeometry( "Cube", "MeshSurface" )
# Creating the first animation source
sParams = "cube.kine.local.posx,cube.kine.local.posy,cube.kine.local.posz"
oSource = Application.StoreAction( oRoot, sParams, 1, "StoredStaticPose", 1, 1, 5, 0, 0) 
# Creating the first clip
oClip = Application.AddClip( oRoot, oSource )   
Application.LogMessage( "First created clip " + oClip.FullName )
# Creating the second animation source
oCube.Parameters("posx").Value = 3.0
oSource2 = Application.StoreAction( oRoot, sParams, 1, "StoredStaticPose", 1, 7, 9, 0, 0 )
# Creating the second clip
oClip2 = Application.AddClip(oRoot, oSource2)
Application.LogMessage("Second created clip " + oClip2.FullName)
# Expected results:
#INFO : First created clip Mixer.Mixer_Anim_Track.StoredStaticPose_Clip
#INFO : Second created clip Mixer.Mixer_Anim_Track1.StoredStaticPose1_Clip

2. JScript の例

/*
This example demonstrates working with action and audio sources and clips
*/
NewScene( null, false );
// Do it on a nested model
var mdl = ActiveSceneRoot.AddModel();
mdl.Name = "TestModel";
// ----------------------
// Create an fcurve source and instantiate a clip in the mixer
var obj = mdl.AddNull();
// Set FCurves on the null's scaling
var keys = new Array( 5, 1.2,  20, 1.7,  45, 2.0,  90, 2.5 );   // X
obj.sclx.AddFCurve2( keys );
var keyfactor = Math.random() * 10;                                     // Y
var posfactor = Math.random();
for ( var i=0; i<keys.length; i=i+2 ) {
        keys[i] = keys[i] + keyfactor;
        keys[i+1] = keys[i+1] * posfactor;
}
obj.scly.AddFCurve2( keys );
var keyfactor = Math.random() * 10;                                     // Z
var posfactor = Math.random();
for ( var i=0; i<keys.length; i=i+2 ) {
        keys[i] = keys[i] - keyfactor;
        keys[i+1] = keys[i+1] * posfactor;
}
obj.sclz.AddFCurve2( keys );
// Get list of parameters to mark
var params = obj.sclx.FullName + ",";
params += obj.scly.FullName + ",";
params += obj.sclz.FullName;
// Make the FCurves into an Action
var src = StoreAction( mdl, params, 2, "StoredAnimFCrvAction" );
AddClip( mdl, src );
// ----------------------
// Add an audio clip to the mixer
var mix;
if ( mdl.HasMixer() ) {
        mix = mdl.Mixer; 
} else {
        mix = mdl.AddMixer();
}
var aud_track = AddTrack( mdl, mix, 2 );
var aud_src = ImportAudio( mdl, "C:\\Program Files\\Messenger\\NEWALERT.WAV" );
AddAudioClip( mdl, aud_src );
// ----------------------
// Find the clips under the mixer
var cliplist = mdl.Mixer.Clips;
for ( var c=0; c<cliplist.Count; c++ ) {
        var clip = cliplist(c);
        LogMessage( "----------------------" );
        LogMessage( "Found a clip of type " + clip.Type + " under " + mdl.Mixer );
        // Get the underlying source items associated with this clip, but make sure
        // we skip the audio files
        if ( clip.Type == siClipAnimationType ) {
                LogMessage( "Found " + clip.MappedItems.Count + " mapped items on " + clip );
                for ( var m=0; m<clip.MappedItems.Count; m++ ) {
                        var itm = clip.MappedItems(m);
                        LogMessage( "Found this mapped item: " + itm.Source2 + " (a " + ClassName(itm.Source2) + ")" );
                }
        }
}
// Expected results:
//INFO : ----------------------
//INFO : Found a clip of type mixeranimclip under TestModel.Mixer
//INFO : Found 3 mapped items on TestModel.Mixer.Mixer_Anim_Track.StoredAnimFCrvAction_Clip
//INFO : Found this mapped item: FCurve (a FCurve)
//INFO : Found this mapped item: FCurve (a FCurve)
//INFO : Found this mapped item: FCurve (a FCurve)
//INFO : ----------------------
//INFO : Found a clip of type mixeraudioclip under TestModel.Mixer

関連項目

AddClip ClipContainer.Clips Track.Clips CopyClipToTrack AddAudioClip ImportAudioAndAddClip ApplyShapeKey SaveShapeKey